function randomNum(minNum, maxNum) {
  switch (arguments.length) {
    case 1:
      return parseInt(Math.random() * minNum + 1, 10);
      break;
    case 2:
      return parseInt(Math.random() * (maxNum - minNum + 1) + minNum, 10);
      break;
    default:
      return 0;
      break;
  }
}
class RandomName {
  constructor() {
    this.nickHeader = [
      '快乐的',
      '冷静的',
      '醉熏的',
      '潇洒的',
      '糊涂的',
      '积极的',
      '冷酷的',
      '深情的',
      '粗暴的',
      '温柔的',
      '可爱的',
      '愉快的',
      '义气的',
      '认真的',
      '威武的',
      '帅气的',
      '传统的',
      '潇洒的',
      '漂亮的',
      '自然的',
      '专一的',
      '听话的',
      '昏睡的',
      '狂野的',
      '等待的',
      '搞怪的',
      '幽默的',
      '魁梧的',
      '活泼的',
      '开心的',
      '高兴的',
      '超帅的',
      '留胡子的',
      '坦率的',
      '直率的',
      '轻松的',
      '痴情的',
      '完美的',
      '精明的',
      '无聊的',
      '有魅力的',
      '丰富的',
      '繁荣的',
      '饱满的',
      '炙热的',
      '暴躁的',
      '碧蓝的',
      '俊逸的',
      '英勇的',
      '健忘的',
      '故意的',
      '无心的',
      '土豪的',
      '朴实的',
      '兴奋的',
      '幸福的',
      '淡定的',
      '不安的',
      '阔达的',
      '孤独的',
      '独特的',
      '疯狂的',
      '时尚的',
      '落后的',
      '风趣的',
      '忧伤的',
      '大胆的',
      '爱笑的',
      '矮小的',
      '健康的',
      '合适的',
      '玩命的',
      '沉默的',
      '斯文的',
      '香蕉',
      '苹果',
      '鲤鱼',
      '鳗鱼',
      '任性的',
      '细心的',
      '粗心的',
      '大意的',
      '甜甜的',
      '酷酷的',
      '健壮的',
      '英俊的',
      '霸气的',
      '阳光的',
      '默默的',
      '大力的',
      '孝顺的',
      '忧虑的',
      '着急的',
      '紧张的',
      '善良的',
      '凶狠的',
      '害怕的',
      '重要的',
      '危机的',
      '欢喜的',
      '欣慰的',
      '满意的',
      '跳跃的',
      '诚心的',
      '称心的',
      '如意的',
      '怡然的',
      '娇气的',
      '无奈的',
      '无语的',
      '激动的',
      '愤怒的',
      '美好的',
      '感动的',
      '激情的',
      '激昂的',
      '震动的',
      '虚拟的',
      '超级的',
      '寒冷的',
      '精明的',
      '明理的',
      '犹豫的',
      '忧郁的',
      '寂寞的',
      '奋斗的',
      '勤奋的',
      '现代的',
      '过时的',
      '稳重的',
      '热情的',
      '含蓄的',
      '开放的',
      '无辜的',
      '多情的',
      '纯真的',
      '拉长的',
      '热心的',
      '从容的',
      '体贴的',
      '风中的',
      '曾经的',
      '追寻的',
      '儒雅的',
      '优雅的',
      '开朗的',
      '外向的',
      '内向的',
      '清爽的',
      '文艺的',
      '长情的',
      '平常的',
      '单身的',
      '伶俐的',
      '高大的',
      '懦弱的',
      '柔弱的',
      '爱笑的',
      '乐观的',
      '耍酷的',
      '酷炫的',
      '神勇的',
      '年轻的',
      '唠叨的',
      '瘦瘦的',
      '无情的',
      '包容的',
      '顺心的',
      '畅快的',
      '舒适的',
      '靓丽的',
      '负责的',
      '背后的',
      '简单的',
      '谦让的',
      '彩色的',
      '缥缈的',
      '欢呼的',
      '生动的',
      '复杂的',
      '慈祥的',
      '仁爱的',
      '魔幻的',
      '虚幻的',
      '淡然的',
      '受伤的',
      '雪白的',
      '高高的',
      '糟糕的',
      '顺利的',
      '闪闪的',
      '羞涩的',
      '缓慢的',
      '迅速的',
      '优秀的',
      '聪明的',
      '含糊的',
      '俏皮的',
      '淡淡的',
      '坚强的',
      '平淡的',
      '欣喜的',
      '能干的',
      '灵巧的',
      '友好的',
      '机智的',
      '机灵的',
      '正直的',
      '谨慎的',
      '俭朴的',
      '殷勤的',
      '虚心的',
      '辛勤的',
      '自觉的',
      '无私的',
      '无限的',
      '踏实的',
      '老实的',
      '现实的',
      '可靠的',
      '务实的',
      '拼搏的',
      '个性的',
      '粗犷的',
      '活力的',
      '成就的',
      '勤劳的',
      '单纯的',
      '落寞的',
      '朴素的',
      '悲凉的',
      '忧心的',
      '洁净的',
      '清秀的',
      '自由的',
      '小巧的',
      '单薄的',
      '贪玩的',
      '刻苦的',
      '干净的',
      '壮观的',
      '和谐的',
      '文静的',
      '调皮的',
      '害羞的',
      '安详的',
      '自信的',
      '端庄的',
      '坚定的',
      '美满的',
      '舒心的',
      '温暖的',
      '专注的',
      '勤恳的',
      '美丽的',
      '腼腆的',
      '优美的',
      '甜美的',
      '甜蜜的',
      '整齐的',
      '动人的',
      '典雅的',
      '尊敬的',
      '舒服的',
      '妩媚的',
      '秀丽的',
      '喜悦的',
      '甜美的',
      '彪壮的',
      '强健的',
      '大方的',
      '俊秀的',
      '聪慧的',
      '迷人的',
      '陶醉的',
      '悦耳的',
      '动听的',
      '明亮的',
      '结实的',
      '魁梧的',
      '标致的',
      '清脆的',
      '敏感的',
      '光亮的',
      '大气的',
      '老迟到的',
      '知性的',
      '冷傲的',
      '呆萌的',
      '野性的',
      '隐形的',
      '笑点低的',
      '微笑的',
      '笨笨的',
      '难过的',
      '沉静的',
      '火星上的',
      '失眠的',
      '安静的',
      '纯情的',
      '要减肥的',
      '迷路的',
      '烂漫的',
      '哭泣的',
      '贤惠的',
      '苗条的',
      '温婉的',
      '发嗲的',
      '会撒娇的',
      '贪玩的',
      '执着的',
      '眯眯眼的',
      '花痴的',
      '想人陪的',
      '眼睛大的',
      '高贵的',
      '傲娇的',
      '心灵美的',
      '爱撒娇的',
      '细腻的',
      '天真的',
      '怕黑的',
      '感性的',
      '飘逸的',
      '怕孤独的',
      '忐忑的',
      '高挑的',
      '傻傻的',
      '冷艳的',
      '爱听歌的',
      '还单身的',
      '怕孤单的',
      '懵懂的',
    ];
    this.nickFoot = [
      '嚓茶',
      '凉面',
      '便当',
      '毛豆',
      '花生',
      '可乐',
      '灯泡',
      '哈密瓜',
      '野狼',
      '背包',
      '眼神',
      '缘分',
      '雪碧',
      '人生',
      '牛排',
      '蚂蚁',
      '飞鸟',
      '灰狼',
      '斑马',
      '汉堡',
      '悟空',
      '巨人',
      '绿茶',
      '自行车',
      '保温杯',
      '大碗',
      '墨镜',
      '魔镜',
      '煎饼',
      '月饼',
      '月亮',
      '星星',
      '芝麻',
      '啤酒',
      '玫瑰',
      '大叔',
      '小伙',
      '哈密瓜，数据线',
      '太阳',
      '树叶',
      '芹菜',
      '黄蜂',
      '蜜粉',
      '蜜蜂',
      '信封',
      '西装',
      '外套',
      '裙子',
      '大象',
      '猫咪',
      '母鸡',
      '路灯',
      '蓝天',
      '白云',
      '星月',
      '彩虹',
      '微笑',
      '摩托',
      '板栗',
      '高山',
      '大地',
      '大树',
      '电灯胆',
      '砖头',
      '楼房',
      '水池',
      '鸡翅',
      '蜻蜓',
      '红牛',
      '咖啡',
      '机器猫',
      '枕头',
      '大船',
      '诺言',
      '钢笔',
      '刺猬',
      '天空',
      '飞机',
      '大炮',
      '冬天',
      '洋葱',
      '春天',
      '夏天',
      '秋天',
      '冬日',
      '航空',
      '毛衣',
      '豌豆',
      '黑米',
      '玉米',
      '眼睛',
      '老鼠',
      '白羊',
      '帅哥',
      '美女',
      '季节',
      '鲜花',
      '服饰',
      '裙子',
      '白开水',
      '秀发',
      '大山',
      '火车',
      '汽车',
      '歌曲',
      '舞蹈',
      '老师',
      '导师',
      '方盒',
      '大米',
      '麦片',
      '水杯',
      '水壶',
      '手套',
      '鞋子',
      '自行车',
      '鼠标',
      '手机',
      '电脑',
      '书本',
      '奇迹',
      '身影',
      '香烟',
      '夕阳',
      '台灯',
      '宝贝',
      '未来',
      '皮带',
      '钥匙',
      '心锁',
      '故事',
      '花瓣',
      '滑板',
      '画笔',
      '画板',
      '学姐',
      '店员',
      '电源',
      '饼干',
      '宝马',
      '过客',
      '大白',
      '时光',
      '石头',
      '钻石',
      '河马',
      '犀牛',
      '西牛',
      '绿草',
      '抽屉',
      '柜子',
      '往事',
      '寒风',
      '路人',
      '橘子',
      '耳机',
      '鸵鸟',
      '朋友',
      '苗条',
      '铅笔',
      '钢笔',
      '硬币',
      '热狗',
      '大侠',
      '御姐',
      '萝莉',
      '毛巾',
      '期待',
      '盼望',
      '白昼',
      '黑夜',
      '大门',
      '黑裤',
      '钢铁侠',
      '哑铃',
      '板凳',
      '枫叶',
      '荷花',
      '乌龟',
      '仙人掌',
      '衬衫',
      '大神',
      '草丛',
      '早晨',
      '心情',
      '茉莉',
      '流沙',
      '蜗牛',
      '战斗机',
      '冥王星',
      '猎豹',
      '棒球',
      '篮球',
      '乐曲',
      '电话',
      '网络',
      '世界',
      '中心',
      '鱼',
      '鸡',
      '狗',
      '老虎',
      '鸭子',
      '雨',
      '羽毛',
      '翅膀',
      '外套',
      '火',
      '丝袜',
      '书包',
      '钢笔',
      '冷风',
      '八宝粥',
      '烤鸡',
      '大雁',
      '音响',
      '招牌',
      '胡萝卜',
      '冰棍',
      '帽子',
      '菠萝',
      '蛋挞',
      '香水',
      '泥猴桃',
      '吐司',
      '溪流',
      '黄豆',
      '樱桃',
      '小鸽子',
      '小蝴蝶',
      '爆米花',
      '花卷',
      '小鸭子',
      '小海豚',
      '日记本',
      '小熊猫',
      '小懒猪',
      '小懒虫',
      '荔枝',
      '镜子',
      '曲奇',
      '金针菇',
      '小松鼠',
      '小虾米',
      '酒窝',
      '紫菜',
      '金鱼',
      '柚子',
      '果汁',
      '百褶裙',
      '项链',
      '帆布鞋',
      '火龙果',
      '奇异果',
      '煎蛋',
      '唇彩',
      '小土豆',
      '高跟鞋',
      '戒指',
      '雪糕',
      '睫毛',
      '铃铛',
      '手链',
      '香氛',
      '红酒',
      '月光',
      '酸奶',
      '银耳汤',
      '咖啡豆',
      '小蜜蜂',
      '小蚂蚁',
      '蜡烛',
      '棉花糖',
      '向日葵',
      '水蜜桃',
      '小蝴蝶',
      '小刺猬',
      '小丸子',
      '指甲油',
      '康乃馨',
      '糖豆',
      '薯片',
      '口红',
      '超短裙',
      '乌冬面',
      '冰淇淋',
      '棒棒糖',
      '长颈鹿',
      '豆芽',
      '发箍',
      '发卡',
      '发夹',
      '发带',
      '铃铛',
      '小馒头',
      '小笼包',
      '小甜瓜',
      '冬瓜',
      '香菇',
      '小兔子',
      '含羞草',
      '短靴',
      '睫毛膏',
      '小蘑菇',
      '跳跳糖',
      '小白菜',
      '草莓',
      '柠檬',
      '月饼',
      '百合',
      '纸鹤',
      '小天鹅',
      '云朵',
      '芒果',
      '面包',
      '海燕',
      '小猫咪',
      '龙猫',
      '唇膏',
      '鞋垫',
      '羊',
      '黑猫',
      '白猫',
      '万宝路',
      '金毛',
      '山水',
      '音响',
    ];

    this.femaleNameItems =
      `嘉、琼、桂、娣、叶、璧、璐、娅、琦、晶、妍、茜、秋、珊、莎、锦、黛、青、倩、婷、姣、婉、娴、瑾、颖、露、瑶、怡、婵、雁、蓓、纨、仪、荷、丹、蓉、眉、君、琴、蕊、薇、菁、梦、岚、苑、婕、馨、瑗、琰、韵、融、园、艺、咏、卿、聪、澜、纯、毓、悦、昭、冰、爽、琬、茗、羽、希、宁、欣、飘、育、滢、馥、筠、柔、竹、霭、凝、晓、欢、霄、枫、芸、菲、寒、伊、亚、宜、可、姬、舒、影、荔、枝、思、丽、秀、娟、英、华、慧、巧、美、娜、静、淑、惠、珠、翠、雅、芝、玉、萍、红、娥、玲、芬、芳、燕、彩、春、菊、勤、珍、贞、莉、兰、凤、洁、梅、琳、素、云、莲、真、环、雪、荣、爱、妹、霞、香、月、莺、媛、艳、瑞、凡、佳`.split(
        '、'
      );
    this.maleNameItems =
      `涛、昌、进、林、有、坚、和、彪、博、诚、先、敬、震、振、壮、会、群、豪、心、邦、承、乐、绍、功、松、善、厚、庆、磊、民、友、裕、河、哲、江、超、浩、亮、政、谦、亨、奇、固、之、轮、翰、朗、伯、宏、言、若、鸣、朋、斌、梁、栋、维、启、克、伦、翔、旭、鹏、泽、晨、辰、士、以、建、家、致、树、炎、德、行、时、泰、盛、雄、琛、钧、冠、策、腾、伟、刚、勇、毅、俊、峰、强、军、平、保、东、文、辉、力、明、永、健、世、广、志、义、兴、良、海、山、仁、波、宁、贵、福、生、龙、元、全、国、胜、学、祥、才、发、成、康、星、光、天、达、安、岩、中、茂、武、新、利、清、飞、彬、富、顺、信、子、杰、楠、榕、风、航、弘`.split(
        '、'
      );

    this.familyNameItemsSin =
      '赵,钱,孙,李,周,吴,郑,王,冯,陈,褚,卫,蒋,沈,韩,杨,朱,秦,尤,许,何,吕,施,张,孔,曹,严,华,金,魏,陶,姜,戚,谢,邹,喻,柏,水,窦,章,云,苏,潘,葛,奚,范,彭,郎,鲁,韦,昌,马,苗,凤,花,方,俞,任,袁,柳,酆,鲍,史,唐,费,廉,岑,薛,雷,贺,倪,汤,滕,殷,罗,毕,郝,邬,安,常,乐,于,时,傅,皮,卞,齐,康,伍,余,元,卜,顾,孟,平,黄,和,穆,萧,尹,姚,邵,湛,汪,祁,毛,禹,狄,米,贝,明,臧,计,伏,成,戴,谈,宋,茅,庞,熊,纪,舒,屈,项,祝,董,梁,杜,阮,蓝,闵,席,季,麻,强,贾,路,娄,危,江,童,颜,郭,梅,盛,林,刁,钟,徐,丘,骆,高,夏,蔡,田,樊,胡,凌,霍,虞,万,支,柯,昝,管,卢,莫,经,房,裘,缪,干,解,应,宗,丁,宣,贲,邓,郁,单,杭,洪,包,诸,左,石,崔,吉,钮,龚,程,嵇,邢,滑,裴,陆,荣,翁,荀,羊,于,惠,甄,曲,家,封,芮,羿,储,靳,汲,邴,糜,松,井,段,富,巫,乌,焦,巴,弓,牧,隗,山,谷,车,侯,宓,蓬,全,郗,班,仰,秋,仲,伊,宫,宁,仇,栾,暴,甘,钭,厉,戎,祖,武,符,刘,景,詹,束,龙,叶,幸,司,韶,郜,黎,蓟,薄,印,宿,白,怀,蒲,邰,从,鄂,索,咸,籍,赖,卓,蔺,屠,蒙,池,乔,阴,郁,胥,能,苍,双,闻,莘,党,翟,谭,贡,劳,逄,姬,申,扶,堵,冉,宰,郦,雍,嘤,璩,桑,桂,濮,牛,寿,通,边,扈,燕,冀,郏,浦,尚,农,柴,瞿,阎,充,慕,连,茹,习,宦,艾,鱼,容,向,古,易,慎,戈,廖,庾,终,暨,居,衡,步,都,耿,满,弘,匡,国,文,寇,广,禄,阙,东,欧,殳,沃,利,蔚,越,夔,隆,师,巩,厍,聂,晁,勾,敖,融,冷,訾,辛,阚,那,简,饶,空,曾,毋,沙,乜,养,鞠,须,丰,巢,关,蒯,相,查,后,荆,红,游,竺,权,逯,盖,益,桓,公,万,俟,司,马,上,官,欧,阳,夏,候,诸,葛,闻,人,东,方,赫,连,皇,甫,尉,迟,公,羊,澹,台,公,治,宗,政,濮,阳,淳,于,单,于,太,叔,申,屠,公,孙,仲,孙'.split(
        ','
      );
    this.familyNameItemsSur =
      '辕轩,令狐,钟离,宇文,长孙,幕容,鲜于,闾丘,司徒,司空,丌官,司寇,仉督,子车,颛孙,端木,巫马,公西,漆雕,乐正,壤驷,公良,拓拔,夹谷,宰父,谷梁,晋楚,阎法,汝鄢,涂钦,段干,百里,东郭,南门,呼延,归海,羊舌,微生,岳帅,缑亢,况后,有琴,梁丘,左丘,东门,西门,商牟,佘佴,佰赏,南官,墨哈,谯笪,年爱,阳佟,第五,言福'.split(
        ','
      );
    this.allName = this.femaleNameItems.concat(this.maleNameItems);
    this.familyNameItemsAll = this.familyNameItemsSin.concat(this.familyNameItemsSur);
  }

  getNickHeader() {
    return this.nickHeader[randomNum(0, 331)];
  }
  getNickFoot() {
    return this.nickFoot[randomNum(0, 325)];
  }

  getNickName() {
    return this.getNickHeader() + this.getNickFoot();
  }

  getFamilyName(sur = true) {
    if (sur) {
      return this.familyNameItemsAll[randomNum(0, this.familyNameItemsAll.length - 1)];
    } else {
      return this.familyNameItemsSin[randomNum(0, this.familyNameItemsSin.length - 1)];
    }
  }
  getFemaleName(sur) {
    const r = randomNum(0, 1);
    if (r === 0) {
      return (
        this.getFamilyName(sur) +
        this.femaleNameItems[randomNum(0, this.femaleNameItems.length - 1)] +
        this.femaleNameItems[randomNum(0, this.femaleNameItems.length - 1)]
      );
    } else {
      return (
        this.getFamilyName(sur) +
        this.femaleNameItems[randomNum(0, this.femaleNameItems.length - 1)]
      );
    }
  }
  getMaleName(sur) {
    const r = randomNum(0, 1);
    if (r === 0) {
      return (
        this.getFamilyName(sur) +
        this.maleNameItems[randomNum(0, this.maleNameItems.length - 1)] +
        this.maleNameItems[randomNum(0, this.maleNameItems.length - 1)]
      );
    } else {
      return (
        this.getFamilyName(sur) + this.maleNameItems[randomNum(0, this.maleNameItems.length - 1)]
      );
    }
  }
  getName(sur) {
    const r = randomNum(0, 1);
    if (r === 0) {
      return (
        this.getFamilyName(sur) +
        this.allName[randomNum(0, this.allName.length - 1)] +
        this.allName[randomNum(0, this.allName.length - 1)]
      );
    } else {
      return this.getFamilyName() + this.allName[randomNum(0, this.allName.length - 1)];
    }
  }
}
let randomName = new RandomName();
export default randomName;
